package com.zzyl.member.service;

import java.time.LocalDate;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zzyl.member.domain.Reservation;
import com.zzyl.member.dto.ReservationCountDTO;
import com.zzyl.member.dto.ReservationDto;

/**
 * 预约信息Service接口
 * 
 * @author CHEN
 * @date 2025-07-31
 */
public interface IReservationService extends IService<Reservation>
{


    /**
     * 查询预约信息列表
     * 
     * @param reservation 预约信息
     * @return 预约信息集合
     */
    public List<Reservation> selectReservationList(Reservation reservation);


    /**
     * 查询当天取消预约数量
     *
     * @return
     */
    Integer getCancelledCount();


    /**
     * 新增预约
     * @param reservationDto
     * @return
     */
    void insertReservation(ReservationDto reservationDto);

    /**
     * 查询预约时间段预约数量
     * @param date
     * @return
     */
    List<ReservationCountDTO> countByTime(LocalDate date);

    /**
     * 修改预约
     *
     * @param id
     * @return
     */
    Boolean updateReservationById(Long id);

    /**
     * 查询每个时间段剩余预约次数（每个时间段最多六次）
     * @return
     */
//    String getTimingCount(Long time);
}
